package com.oba.base.interfaces;

import com.oba.base.dao.BaseDao;

public interface IHsqlBuilder {

	/**
	 * 添加条件限制
	 * 
	 * @param condtion
	 *            条件
	 * @param param
	 *            参数
	 * @return HSQL构建器对象
	 */
	IHsqlBuilder add(String condtion, Object param);

	/**
	 * 添加带结尾通配符的条件限制
	 * 
	 * @param condtion
	 *            条件
	 * @param param
	 *            参数
	 * @param endwildcard
	 *            结尾通配符
	 * @return HSQL构建器对象
	 */
	IHsqlBuilder add(String condtion, Object param, String endwildcard);

	/**
	 * 添加带首尾通配符的条件限制
	 * 
	 * @param condtion
	 *            条件
	 * @param param
	 *            参数
	 * @param prewildcard
	 *            首部通配符
	 * @param endwildcard
	 *            结尾通配符
	 * @return HSQL构建器对象
	 */
	IHsqlBuilder add(String condtion, Object param, String prewildcard,
			String endwildcard);

	/**
	 * 添加无参条件限制
	 * 
	 * @param condtion
	 *            条件
	 * @return HSQL构建器对象
	 */
	IHsqlBuilder add(String condtion);

	/**
	 * 添加HSQL尾部
	 * 
	 * @param sqlend
	 *            HSQL尾部
	 * @return HSQL构建器对象
	 */
	IHsqlBuilder addend(String sqlend);

	/**
	 * 执行构建
	 */
	public abstract void build();

	/**
	 * 获取HSQL
	 * 
	 * @return 构建的HSQL
	 */
	String getHsql();

	/**
	 * 获取参数值数组
	 * 
	 * @return 参数值数组
	 */
	Object[] getValues();

	/**
	 * 获取Dao
	 */
	BaseDao getDao();

}